package com.aier.user.service;

import java.util.List;
import java.util.Map;

import com.aier.classes.entity.ClassStudent;
import com.aier.classes.entity.Classes;
import com.aier.classes.entity.Homework;
import com.aier.classes.entity.HomeworkCR;
import com.aier.classes.entity.HomeworkComment;
import com.aier.school.entity.SchoolTeacher;
import com.aier.user.entity.AppraiseComment;
import com.aier.user.entity.DialogComment;
import com.aier.user.entity.User;




public interface IHsConBookService {
    
    /**
     * 教师发起对话
     * @param cid
     * @param tid
     * @param buidStr
     * @param content
     * @return
     */
    int insertTDialog(Long cid,Long tid,String buidStr,String content);
    
    /**
     * 家长发起对话
     * @param cid
     * @param tidStr
     * @param puid
     * @param buid
     * @param content
     * @return
     */
    int insertPDialog(Long cid,String tidStr,Long puid,Long buid,String content);
    
    /**
     * 发起对话
     * @param uid
     * @param did
     * @param content
     * @return
     */
    int insertCommentDialog(Long uid,Long did,String content,Long tid,Short type);
    
    /**
     * 根据did查看对话回复内容
     * @param did
     * @return
     */
    List<DialogComment> searchDCByDid(Long did);
    
    /**
     * 家长查看对话列表
     * @param page
     * @param pagesize
     * @param puid
     * @param buid
     * @return
     */
    Map<String,Object> searchPDialogList(int page,int pagesize,Long buid);
    
    /**
     * 教师查看对话记录
     * @param page
     * @param pagesize
     * @param cid
     * @return
     */
    Map<String,Object> searchTDialogList(int page,int pagesize,Long cid,Long tid);
    
    /**
     * 教师发布评语
     * @param cid
     * @param tid
     * @param buidStr
     * @param content
     * @return
     */
    long insertAppraise(Long cid,Long tid,String bstr,String content);
    
    /**
     * 回复评语
     * @param uid
     * @param apid
     * @param content
     * @param type
     * @return
     */
    int insertCommentAppraise(Long uid,Long apid,String content,Long tid,Short type);
    
    /**
     * 根据apid查看评语回复内容
     * @param apid
     * @return
     */
    List<AppraiseComment> searchACByDid(Long apid);
    
    /**
     * 家长查看评语列表
     * @param page
     * @param pagesize
     * @param puid
     * @param buid
     * @return
     */
    Map<String,Object> searchPAppraiseList(int page,int pagesize,Long buid);
    
    /**
     * 教师查看评语记录
     * @param page
     * @param pagesize
     * @param cid
     * @return
     */
    Map<String,Object> searchTAppraiseList(int page,int pagesize,Long cid,Long tid);
    
    /**
     * 教师发布作业
     * @param cid
     * @param tid
     * @param content
     * @param img
     * @return
     */
    long insertHomework(Long cid, Long tid,String title, String content, String img,Integer count);
    
    /**
     * 评论作业或晒作业
     * @param uid
     * @param hid
     * @param content
     * @param img
     * @return
     */
    HomeworkComment insertHComment(Long uid,Long hid,String content,String img,Short type,Long buid,Long tid);
    
    /**
     * 回复评论
     * @param uid
     * @param chid
     * @param content
     * @return
     */
    HomeworkCR insertReply(Long uid,Long chid,String content,Short type,Long buid,Long tid);
    
    /**
     * 家长查询作业列表
     * @param page
     * @param page_size
     * @param buid
     * @return
     */
    Map<String,Object> searchPHomework(int page, int page_size, Long buid);
    
    /**
     * 教师查询作业列表
     * @param page
     * @param page_size
     * @param cid
     * @return
     */
    Map<String,Object> searchTHomework(int page, int page_size, Long cid);
    
    /**
     * 查询作业的评论
     * @param hid
     * @return
     */
    List<HomeworkComment> searchHCList(Long hid);
    
    /**
     * 查询作业评论的回复
     * @param chid
     * @return
     */
    List<HomeworkCR> searchHCRList(Long chid);
    
    /**
     * 查询用户是否是老师
     * @return
     */
    List<SchoolTeacher> searchSTByUid(Long uid);
    
    /**
     * 获取教师所在的班级
     * @param uid
     * @return
     */
    List<Classes> searchTClasses(Long uid);
    
    /**
     * 根据家长获取班级的学生列表
     * @param uid
     * @return
     */
    List<ClassStudent> searchCTByUid(Long uid);
    
    /**
     * 获取家长的宝宝列表
     * @param uid
     * @return
     */
    List<User> searchBabyByUid(Long uid);
    
    /**
     * 查询学校公告成功发送的短信的条数
     * @param mid
     * @return
     */
    int searchMessageSuccessCount(Long mid);
    
    /**
     * 查询学校公告发送失败的用户
     * @param mid
     * @return
     */
    String searchMessageFailStr(Long mid);
    
    /**
     * 删除公告
     * @param mid
     * @return
     */
    int deleteMessage(Long mid);
    
    // 新版
    /**
     * 查询作业列表
     * @param page
     * @param page_size
     * @param cid
     * @return
     */
    Map<String,Object> searchHomework(int page, int page_size, Long cid);
    
    /**
     * 查询作业详情
     * @param hid
     * @return
     */
    Homework searchHomework(Long hid);
    
    /**
     * 获取作业未阅读列表
     * @param mid
     * @return
     */
    String searchUnReadingList(Long hid);
    
    /**
     * 查询作业已阅列表
     * @param mid
     * @return
     */
    List<ClassStudent> searchCSByCondition(Long hid);
    
    /**
     * 删除作业评论
     * @param chid
     * @return
     */
    int deleteComment(Long chid);
    
    /**
     * 删除作业评论的回复
     * @param crhid
     * @return
     */
    int deleteReply(Long crhid);
    
    /**
     * 修改作业阅读量
     * @return
     */
    int insertHomeworkReading(Long hid, Long uid);
    
    /**
     * 评论作业或晒作业
     * @param uid
     * @param hid
     * @param content
     * @param img
     * @param type
     * @param tid
     * @return
     */
    HomeworkComment insertHComment(Long uid,Long hid,String content,String img,Short type,Long tid);
    
    /**
     * 回复评论
     * @param uid
     * @param chid
     * @param content
     * @return
     */
    HomeworkCR insertReply(Long uid,Long chid,String content,Short type,Long tid);
    
    /**
     * 根据hid chid查找出评论人的名字
     * @param hid
     * @param chid
     * @return
     */
    String searchHCName(Long hid,Long chid);
}
